Creating an executable computer program generally involves generating algorithms, verifying the correctness of the algorithms, and implementing the algorithms into a programming language. This process often requires expertise in many areas, including coding in the target programming language. For example, in an Integrated Developer Environment such as MICROSOFT VISUAL STUDIO, a designer exists to create a user interface form for an application. A developer can drag controls to the design surface. To change a property of the control (e.g., to change the size of a textbox, or the color of a shape), the developer typically adds code to an event handler of the control to change the property of the control. Similarly, in GOOGLE ANDROID STUDIO, or ECLIPSE, Java code may be added to change a property of a control at runtime. Despite the fact that designers have existed in these tools for many years, and despite numerous productivity gains of Integrated Developer Environments, the process of adding code to change properties of controls at runtime still often requires developer skills in writing the code that affects the control properties at runtime. In addition, it still often involves developer time, and is subject to errors made by developers in writing code.
Spreadsheet software such as MICROSOFT EXCEL or GOOGLE DOCS have allowed users to create models by specifying transformations between cells using a functional declarative language similar to mathematical models. These functions usually take one or more arguments that may be provided by typing text in a formula bar or by clicking in a cell. However, the only visual elements that participate in the transformation chain, or models, are the spreadsheet cells, such as with features for highlighting participating spreadsheet cells in a sheet. Additionally, a spreadsheet cell holds a single value and does not have other attributes or properties exposed to the model. Because there is only one type of control contributing to the model in a spreadsheet—the cell—and because a cell has only one value being displayed in the cell, there is no concern about linking one property type of one type of design control to another property type of another type of design control, because control attributes are not linked or used in conjunction with formulae.